package com.hb.trade.client.center;

import com.hb.core.pojo.center.sys.dto.MenuResourceDTO;
import com.hb.core.pojo.center.sys.entity.MenuResource;
import org.fzzn.core.model.msg.Message;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient("hb-center")
public interface MenuResourceClient {
    /**
     * 新增一个菜单
     *
     * @param menuDto
     * @return
     */
    @PostMapping("/menuResource/addMenu")
    Message<Boolean> addMenu(MenuResourceDTO menuDto);

    /**
     * 新增一个菜单
     *
     * @param menuId
     * @return
     */
    @PostMapping("/menuResource/removeMenu")
    Message<Boolean> removeMenu(@RequestParam("menuId") Long menuId);

    /**
     * 修改菜单信息
     *
     * @param menuResource
     * @return
     */
    @PostMapping("/menuResource/updateMenuResource")
    Message<Boolean> updateMenuResource(MenuResourceDTO menuResource);

    /**
     * 查询一个菜单详情
     *
     * @param menuId
     * @return
     */
    @PostMapping("/menuResource/getMenu")
    Message<MenuResource> getMenu(@RequestParam("menuId") Long menuId);

    /**
     * 菜单列表
     *
     * @param menuResource
     * @return
     */
    @PostMapping("/menuResource/listTrees")
    Message<List<MenuResourceDTO>> listTrees(MenuResourceDTO menuResource);

    /**
     * 获取当前登录用户和指定角色所能分配的权限合集
     *
     * @param userId 用户ID
     * @param roleId 角色ID
     * @return
     */
    @PostMapping("/menuResource/currentWithRoleId")
    Message<List<MenuResourceDTO>> currentWithRoleId(@RequestParam("userId") Long userId, @RequestParam("roleId") Long roleId);

    /**
     * 获取指定角色已拥有的权限集合
     *
     * @param roleId 角色ID
     * @return
     */
    @PostMapping("/menuResource/authByRoleId")
    Message<List<MenuResourceDTO>> authByRoleId(@RequestParam("roleId") Long roleId);
}
